// 先排序再拿该值与前一个值比较，return 出改值与前面一个值不相等的值

// const arr = [1, 2, 3, 4, 1, 2]

// function unique(arr) {
//   let newArr = arr
//   let res = newArr.sort().filter((item, index, arr) => {
//     return index === 0 || item !== arr[index - 1]
//   })

//   return res
// }

// console.log(unique(arr));   // [ 1, 2, 3, 4 ]

// const arr = [1, 2, 3, 4, 1, 2]
// // 若已有该值为true    
// // {
// //   1:true,
// //   2:true
// // }
// function unique(arr) {
//   let obj = {}

//   for (let i = 0; i < arr.length; i++) {
//     if (!obj[arr[i]]) {
//       obj[arr[i]] = true
//     }
//   }

//   return Object.keys(obj).map(Number)
// }

// console.log(unique(arr));   // [ 1, 2, 3, 4 ]


// Set 数据结构 
let s = new Set()
s.add(1)
s.add(2)
s.add(1)
console.log(s);   // Set(2) { 1, 2 }
console.log(...s);   // 1 2


const arr = [1, 2, 3, 4, 1, 2]

function unique(arr) {
  let res = new Set(arr)
  return [...res]
}

console.log(unique(arr));   //[ 1, 2, 3, 4 ]



